package pe.com.cruzdelsur.dao;

import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.hibernate.SessionFactory;
import org.springframework.stereotype.Repository;

import pe.com.cruzdelsur.dominio.Actividad;

/*@Repository("actividadDao")*/
public class ActividadDaoImpl implements ActividadDao {

	private SessionFactory sessionFactory;

	public SessionFactory getSessionFactory() {
		return sessionFactory;
	}

	public void setSessionFactory(SessionFactory sessionFactory) {
		this.sessionFactory = sessionFactory;
	}

	@Override
	public void insertar(Actividad actividad) {
		getSessionFactory().getCurrentSession().save(actividad);

	}

	public void actualizar(Actividad actividad) {
		getSessionFactory().getCurrentSession().update(actividad);

	}

	public void eliminar(Actividad actividad) {
		getSessionFactory().getCurrentSession().delete(actividad);

	}

	public Actividad obtener(int id) {
		List list = getSessionFactory().getCurrentSession()
				.createQuery("from Actividad where id=?").setParameter(0, id)
				.list();
		return (Actividad) list.get(0);
	}

	@Override
	public Actividad buscarPorDescripcionIgual(String descripcion) {
		List list = getSessionFactory().getCurrentSession()
				.createQuery("from Actividad  where descripcion=:descripcion").setParameter("descripcion", descripcion)
				.list();
		return (Actividad) list.get(0);
	}
	
	public List<Actividad> listar() {
		List list = getSessionFactory().getCurrentSession()
				.createQuery("from Actividad").list();
		return list;
	}

	public Map<String,String> obtenerListaActividads() {
		List list = getSessionFactory().getCurrentSession()
				.createQuery("from Actividad").list();
		Map<String, String> mapLista = new HashMap<String, String>();
	

		if (list.size() > 0) {
			Iterator<Actividad> it = list.iterator();
			while (it.hasNext()) {
				Actividad actividad = (Actividad) it.next();
				mapLista.put(actividad.getDescripcion().toString(),
						String.valueOf(actividad.getActividadId()));

			}

			/*
			 * Map mapOrdenado = new TreeMap(mapLista); Set ref =
			 * mapOrdenado.keySet(); return mapOrdenado;
			 */

		}
		return mapLista;
	}


}
